'java -D'和'java --'后面跟参数的区别

java -D

java -Dmy.name=张三这种方式添加的参数可以通过如下方式获取:

1
System.getProperties("my.name")

-D为Java内部命令,必须放在-jar前,在其后则无效。示例:

1
nohup java -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -jar myApplication.jar >./catalina.out 2>&1 &

java –

java --my.address=北京东城区这种方式添加的配置项,和在application.yml文件中配置参数是类型的。可以通过如下方式获取:

1
2
3
4
5
6
7
8
9
@Getter
@Setter
@Configuration
public class AppConfiguration {

@Value("${my.address}")
private String myAddress;

}

注意,–的参数必须放在-jar之后,否则会启动报错。另外如果上面的 my.address 参数在application.yml文件中没有配置,也没有在启动命令行中配置,则项目启动也会报错。

------ 本文完 ------